iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 7
1

Array

我們在介紹Object types時候,已經針對Object做了一個基本的介紹,今天我們就來介紹Array吧,Array也是屬於Object的一種,但Array是屬於比較特別的,他不像Object一樣用Properties來存放value,而是透過 __有順序__的位置來存放。

var hiArray = [1,'2',['a']];

上圖就是一個array,透過 [ ] 來建立,每一個value用 ,逗號 隔開,至於如何像object一樣拿到裡面的值呢,剛剛我們說過Array是有順序的,這時我們就要透過 index 來拿值。

console.log(hiArray[0]); // '1'
console.log(hiArray[1]); // '2'
console.log(hiArray[2]); // ['a']
  • indexed position 便是透過array[index]去抓取
  • 起始數字為0而非1
  • Array內的內容可以是不同型態的

Array長度

Array中內建了一個method,array.length可以直接check目前array的長度,而其他常見method我們將在後面的章節做介紹。

var hiArray = [1,'2',['a']];
hiArray.length; //3

Array的新增與移除

新增

Array內容的新增可以像是object一樣直接assign進去,但必須特別注意到,sparse array ,array中包含了空位置就稱為sparse array,如以下範例。

var hiArray = [1,'2',['a']];
hiArray[4] = 'hello';
console.log(hiArray[3]); //undefined
console.log(hiArray[4]); // 'hello'
  • 範例中,我們直接跳過了array[3]去存放值給array[4],基於array是有順序原則的,被跳過的插槽
    by default為undefined
  • 擁有這樣一個空插槽的array就是sparse array,但倘若是刻意使其中的值為undefined則又與此不同。
  • 新增的方法不只一種,array.push()、array.unshift()同樣也能新增,

移除

知道了如何新增之後,我們來看看如何刪除array的內容,一樣類似於Object我們可以透過delete operator來達到這樣的動作,但一樣注意到,delete只會移除值,而不會改動插槽的存在,也就是說,array.length 並不會改變。


hiArray[4] = 'hello';
hiArray.length; //5
delete hiArray[4];
console.log(hiArray[4]); // undefined
hiArray.length; //5
  • 透過delete,我們可以看到array[4]變成undefined,也就是空值。
  • 特別注意到array.length長度不變,所以這個陣列長度依然為5。
  • 刪除的方法同樣不只一種,array.pop()、array.shift()一樣可以達到刪除的目的。

碎碎念

今天我們大概介紹了array的概念,包含基本的宣告以及新增移除,但array的運用其實是非常廣泛的,而其中Array裡面內建的methods也是擁有各種用處,今天尚未介紹到,日後會針對常見好用的method做整理,包含其中應該注意的細節,以上就是今天的內容囉,冷冷的天冷冷的雨,大家一起躲到陣列裡面取取暖吧,掰鋪。

參考來源

  1. eloquentjavascript

上一篇
Day06_小偷懶的一天
下一篇
Day08_還是要Array一下
系列文
那些年,我們一起錯過的Javascript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言